#include "mjson.h"

#include<QTextStream>
#include<QJsonDocument>
#include<QJsonObject>
#include<QJsonParseError>
#include<QDebug>

MJson::MJson():code(200),key_must_string("")
{

}

QString MJson::toJSON()
{

    QJsonObject json;
    json.insert("code", this->getCode());
    json.insert("key_must_string", this->getKeyMustString());

    // 构建 JSON 文档
    QJsonDocument document;
    document.setObject(json);
    QByteArray byteArray = document.toJson(QJsonDocument::Compact);
    QString strJson(byteArray);



    return strJson;
}

MJson MJson::parseFromJsonString(const QString json)
{

    MJson mJson;
    //
    QJsonDocument jsonDocument = QJsonDocument::fromJson(json.toLocal8Bit().data());
    if(jsonDocument.isNull())    {
        qDebug()<< "String NULL"<< json.toLocal8Bit().data();
        return mJson;
    }
    QJsonObject jsonObject = jsonDocument.object();

    auto sCode = jsonObject.value("code");
    auto str = jsonObject.value("key_must_string");

    mJson.setCode(sCode.toInt());
    mJson.setKeyMustString(str.toString());

    return mJson;
}

int MJson::getCode() const
{
    return this->code;
}

QString MJson::getKeyMustString() const
{
    return this->key_must_string;
}

void MJson::setCode(int code)
{
    this->code = code;
}

void MJson::setKeyMustString(QString str)
{
    this ->key_must_string = str;
}
